<?php

namespace app\index\controller;

use think\Controller;
use think\Request;
use app\util\File;
use app\util\Utils;
use think\Db;
use app\index\model\VenderFlow;
use app\index\model\VenderTixian;

class TaskController extends Controller {
    /*
     * 创建任务 生成厂家提现
     */

    public function createTixianTask() {
        $TaskPath = config('appconfig.TaskPath');
        $SelfPath = config('appconfig.IndexPath');
        $postFields['source'] = 'kkmai-tixian'; //source String 是  来源（applicationName）
        $postFields['taskType'] = 'MANY'; //taskType String 是   SINGLE(单次), MANY（多次）
        $postFields['methodName'] = $SelfPath . 'Task/createTixianList'; //methodName String 是  需要执行的方法名
        $postFields['methodType'] = 'POST'; //methodType String 是  需要执行的方法调用方式（ GET,POST）
        //$postFields['methodParams'] = 'kkmai'; //methodParams Object 否  需要执行的方法参数
        $postFields['executeTime'] = '2019-10-10 16:06:00'; //executeTime String 是 19 第一次执行时间（2019-06-01 13:12:14）
        $postFields['intervalTime'] = 1296000; //改成30天了  intervalTime Integer 否  间隔时间（若taskType=MANY，填写）秒 30天
        Utils::curlPost($TaskPath . 'task/addTask/', json_encode($postFields));
    }
    
    /*
     * 创建任务 每天自动复制秒杀
     */

    public function createMiaoshaTask() {
        $TaskPath = config('appconfig.TaskPath');
        $SelfPath = config('appconfig.SelfPath');
        $postFields['source'] = 'kkmai-miaosha'; //source String 是  来源（applicationName）
        $postFields['taskType'] = 'MANY'; //taskType String 是   SINGLE(单次), MANY（多次）
        $postFields['methodName'] = $SelfPath . 'Miaosha/createMiaosha'; //methodName String 是  需要执行的方法名
        $postFields['methodType'] = 'POST'; //methodType String 是  需要执行的方法调用方式（ GET,POST）
        //$postFields['methodParams'] = 'kkmai'; //methodParams Object 否  需要执行的方法参数
        $postFields['executeTime'] = '2020-06-10 20:00:00'; //executeTime String 是 19 第一次执行时间（2019-06-01 13:12:14）
        $postFields['intervalTime'] = 86400; //intervalTime Integer 否  间隔时间（若taskType=MANY，填写）秒
        Utils::curlPost($TaskPath . 'task/addTask/', json_encode($postFields));
    }
    
    /*
     * 创建任务 体验卡预约超时
     */

    public function createSuperCardTask() {
        $TaskPath = config('appconfig.TaskPath');
        $SelfPath = config('appconfig.SelfPath');
        $postFields['source'] = 'kkmai-supercard'; //source String 是  来源（applicationName）
        $postFields['taskType'] = 'MANY'; //taskType String 是   SINGLE(单次), MANY（多次）
        $postFields['methodName'] = $SelfPath . 'Experience/timeOutYuYue'; //methodName String 是  需要执行的方法名
        $postFields['methodType'] = 'POST'; //methodType String 是  需要执行的方法调用方式（ GET,POST）
        //$postFields['methodParams'] = 'kkmai'; //methodParams Object 否  需要执行的方法参数
        $postFields['executeTime'] = '2021-05-21 16:00:00'; //executeTime String 是 19 第一次执行时间（2019-06-01 13:12:14）
        $postFields['intervalTime'] = 3600; //intervalTime Integer 否  间隔时间（若taskType=MANY，填写）秒
        Utils::curlPost($TaskPath . 'task/addTask/', json_encode($postFields));
    }
    
    /*
     * 创建任务 待接单超过五分钟发送企业微信消息推送
     */

    public function createYuyueTimeOutTask() {
        $TaskPath = config('appconfig.TaskPath');
        $SelfPath = config('appconfig.SelfPath');
        $postFields['source'] = 'kkmai-supercard'; //source String 是  来源（applicationName）
        $postFields['taskType'] = 'MANY'; //taskType String 是   SINGLE(单次), MANY（多次）
        $postFields['methodName'] = $SelfPath . 'Yuyue/timeOutOrder'; //methodName String 是  需要执行的方法名
        $postFields['methodType'] = 'POST'; //methodType String 是  需要执行的方法调用方式（ GET,POST）
        //$postFields['methodParams'] = 'kkmai'; //methodParams Object 否  需要执行的方法参数
        $postFields['executeTime'] = '2021-07-21 10:00:00'; //executeTime String 是 19 第一次执行时间（2019-06-01 13:12:14）
        $postFields['intervalTime'] = 300; //intervalTime Integer 否  间隔时间（若taskType=MANY，填写）秒
        return Utils::curlPost($TaskPath . 'task/addTask/', json_encode($postFields));
    }

    /*
     * 生成厂家提现列表
     * author xfwed
     * date 2019-10-10
     */

    public function createTixianList() {
        $ids = VenderFlow::group('brand_id')->column('max(id)'); //buildSql

        $flowList = VenderFlow::where('id', 'in', $ids)->select();

        foreach ($flowList as $k => $v) {
            if ($v['last_money'] / 100 > 100) {
                $brandName = Db::table('brand_info')->where('id', $v['brand_id'])->value('name');
                //　数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集
                $brandInfo = Db::connect('mysql://root:eDKmpHzrfkcKrHavT5NLuQ@127.0.0.1:3306/mbcnew#utf8')
                        ->table('brand_info')
                        ->where('name', '=', $brandName)
                        ->field('companyId')
                        ->find();
                if ($brandInfo) {
                    $brandInfo = Db::connect('mysql://root:eDKmpHzrfkcKrHavT5NLuQ@127.0.0.1:3306/mbcnew#utf8')
                            ->table('company_info')
                            ->where('id', '=', $brandInfo['companyId'])
                            ->field('alipay,alipay_name,bank_name,bank_address')
                            ->find();
                    $bank_name = $brandInfo['bank_name'];
                    $bank_address = $brandInfo['bank_address'];
                    $bank_username = $brandInfo['alipay_name'];
                    $bank_num = $brandInfo['alipay'];
                }  else {
                    $bank_name = '';
                    $bank_address = '';
                    $bank_username = '';
                    $bank_num = '';
                }
                $poundage = round($v['last_money']/100*0.012,2);
                $money = $v['last_money']/ 100-$poundage;

                //查该品牌最后一次提现的id
                $maxTixianId = VenderFlow::where('brand_id',$v['brand_id'])
                        ->where('pro_type',8)
                        ->order('id desc')
                        ->value('id');
                if(empty($maxTixianId)){
                    $maxTixianId = 0;
                }
                $order_id = VenderFlow::where('id','>',$maxTixianId)
                        ->where('brand_id',$v['brand_id'])
                        ->where('type',1)
                        ->column('order_id');
                $order_ids = implode(',',$order_id);
                
                $tixiandata = [
                    'brand_id' => $v['brand_id'],
                    'money' => $money*100,
                    'poundage' => $poundage*100,
                    'bank_name' => $bank_name,
                    'bank_address' => $bank_address,
                    'bank_username' => $bank_username,
                    'bank_num' => $bank_num,
                    'add_time' => date('Y-m-d H:i:s'),
                    'order_ids' => $order_ids,
                ];
                
                $flowData = [
                    'item_name' => '提现',
                    'type' => 2,
                    'pro_type' => 8,
                    'brand_id' => $v['brand_id'],
                    'allmoney' => $v['last_money'],
                    'money' => $v['last_money'],
                    'last_money' => 0,
                    'add_time' => date('Y-m-d H:i:s'),
                ]; 
                Db::startTrans();
               $tixianId =  VenderTixian::insertGetId($tixiandata);
               $flowId = VenderFlow::insertGetId($flowData);
               if($tixianId && $flowId){
                   Db::commit();
               }  else {
                   Db::rollback();
               }
            }
        }
        return Utils::ajaxReturn(0, '执行成功', null); 
    }

}
